psychologywikiaorg-20200213-history
Computer programming
Computer programming (often shortened to programming or coding) is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs. This source code is written in a programming language. The code may be a modification of an existing source or something completely new. The purpose of programming is to create a program that exhibits a certain desired behavior (customization). The process of writing source codes requires expertise in many different subjects, including knowledge of the application domain, specialized algorithms, and formal logic. Within software engineering, programming (the implementation) is regarded as one phase in a software development process. There is an ongoing debate on the extent to which the writing of programs is an art, a craft or an engineering discipline. Good programming is generally considered to be the measured application of all three, with the goal of producing an efficient and maintainable software solution (the criteria for "efficient" and "maintainable" vary considerably). The discipline differs from many other technical professions in that programmers generally do not need to be licensed or pass any standardized (or governmentally regulated) certification tests in order to call themselves "programmers" or even "software engineers". Another ongoing debate is the extent to which the programming language used in writing programs affects the form that the final program takes. This debate is analogous to that surrounding the Sapir-Whorf hypothesis in linguistics. Programmers :See Computer programmer to learn more about the process of computer programing. Computer programmers are those who write computer software. Their job usually involves: * Requirements analysis * Specification * Software architecture * Coding * Compilation * Software testing * Documentation * Integration * Maintenance Programming languages Different programming languages support different styles of programming (called ''programming paradigms). The choice of language used is subject to many considerations, such as company policy, suitability to task, availability of third-party packages, or individual preference. Ideally, the programming language best suited for the task at hand will be selected. Trade-offs from this ideal involve finding enough programmers who know the language to build a team, the availability of compilers for that language, and the efficiency with which programs written in a given language execute. Allen Downey, in his book "How To Think Like A Computer Scientist" http://www.greenteapress.com/thinkapjava/wrote: The details look different in different languages, but a few basic instructions appear in just about every language: input: Get data from the keyboard, a file, or some other device. output: Display data on the screen or send data to a file or other device. math: Perform basic mathematical operations like addition and multiplication. conditional execution: Check for certain conditions and execute the appropriate sequence of statements. repetition: Perform some action repeatedly, usually with some variation. History of programming The earliest programmable machine (that is a machine whose behavior can be controlled by changes to a "program") was Al-Jazari's programmable humanoid robot in 1206. Al-Jazari's robot was originally a boat with four automatic musicians that floated on a lake to entertain guests at royal drinking parties. His mechanism had a programmable drum machine with pegs (cams) that bump into little levers that operate the percussion. The drummer could be made to play different rhythms and different drum patterns by moving the pegs to different locations.A 13th Century Programmable Robot. University of Sheffield. The Jacquard Loom, developed in 1801, is often quoted as a source of prior art. The machine used a series of pasteboard cards with holes punched in them. The hole pattern represented the pattern that the loom had to follow in weaving cloth. The loom could produce entirely different weaves using different sets of cards. The use of punched cards was also adopted by Charles Babbage around 1830, to control his Analytical Engine. This innovation was later refined by Herman Hollerith who, in 1896 founded the Tabulating Machine Company (which became IBM). He invented the Hollerith punched card, the card reader, and the key punch machine. These inventions were the foundation of the modern information processing industry. The addition of a plug-board to his 1906 Type I Tabulator allowed it to do different jobs without having to be rebuilt (the first step toward programming). By the late 1940s there were a variety of plug-board programmable machines, called unit record equipment, to perform data processing tasks (card reading). The early computers were also programmed using plug-boards. The invention of the Von Neumann architecture allowed programs to be stored in computer memory. Early programs had to be painstakingly crafted using the instructions of the particular machine, often in binary notation. Every model of computer would be likely to need different instructions to do the same task. Later assembly languages were developed that let the programmer specify each instruction in a text format, entering abbreviations for each operation code instead of a number and specifying addresses in symbolic form (e.g. ADD X, TOTAL). In 1954 Fortran, the first higher level programming language, was invented. This allowed programmers to specify calculations by entering a formula directly (e.g. Y = X*2 + 5*X + 9). The program text, or source, was converted into machine instructions using a special program called a compiler. Many other languages were developed, including ones for commercial programming, such as COBOL. Programs were mostly still entered using punch cards or paper tape. (See computer programming in the punch card era). By the late-60s, data storage devices and computer terminals became inexpensive enough so programs could be created by typing directly into the computers. Text editors were developed that allowed changes and corrections to be made much more easily than with punch cards. As time has progressed computers have made giant leaps in the area of processing power. This has brought about newer programming languages that are more abstracted from the underlying hardware. Although these more abstracted languages require additional overhead, in most cases the huge increase in speed of modern computers has brought about little performance decrease compared to earlier counterparts. The benefits of these more abstracted languages is that they allow both an easier learning curve for people less familiar with the older lower-level programming languages, and they also allow a more experienced programmer to develop simple applications quickly. Despite these benefits, large complicated programs, and programs that are more dependent on speed still require the faster and relatively lower-level languages with todays hardware. (The same concerns were raised about the original Fortran language.) Throughout the second half of the twentieth century, programming was an attractive career in most developed countries. Some forms of programming have been increasingly subject to offshore outsourcing (importing software and services from other countries, usually at a lower wage), making programming career decisions in developed countries more complicated, while increasing economic opportunities in less developed areas. It is unclear how far this trend will continue and how deeply it will impact programmer wages and opportunities. Modern programming Quality requirements Whatever the approach to the software development may be, the program must finally satisfy some fundamental properties; bearing them in mind while programming reduces the costs in terms of time and/or money due to debugging, further development and user support. Although quality programming can be achieved in a number of ways, following five properties are among the most relevant: *'Efficiency': it is referred to the system resource consumption (computer processor, memory, slow devices, networks and to some extent even user interaction) which must be the lowest possible. *'Reliability': the results of the program must be correct, which not only implies a correct code implementation but also reduction of error propagation (e.g. resulting from data conversion) and prevention of typical errors (overflow, underflow or zero division). *'Robustness': a program must anticipate situations of data type conflict and all other incompatibilities which result in run time errors and stop the program. The focus of this aspect is the interaction with the user and the handling of error messages. *'Portability': it should work as it is in any software and hardware environment, or at least without relevant reprogramming. *'Readability': the purpose of the main program and of each subroutine must be clearly defined with appropriate comments and self explanatory choice of symbolic names (constants, variables, function names, classes, methods, ...). Algorithmic Complexity The academic field and engineering practice of computer programming are largely concerned with discovering and implementing the most efficient algorithms for a given class of problem. For this purpose, algorithms are classified into orders using so-called Big O notation, O(n), which expresses resource use, such as execution time or memory consumption, in terms of the size of an input. Expert programmers are familiar with a variety of well-established algorithms and their respective complexities and use this knowledge to choose algorithms that are best suited to the circumstances. Methodologies The first step in most formal software development projects is requirements analysis, followed by modeling, implementation, and failure elimination (debugging). There exist a lot of differing approaches for each of those tasks. One approach popular for requirements analysis is Use Case analysis. Popular modeling techniques include Object-Oriented Analysis and Design (OOAD) and Model-Driven Architecture (MDA). The Unified Modeling Language (UML) is a notation used for both OOAD and MDA. A similar technique used for database design is Entity-Relationship Modeling (ER Modeling). Implementation techniques include imperative languages (object-oriented or procedural), functional languages, and logic languages. Debugging is most often done with IDEs like Visual Studio, NetBeans, and Eclipse. Separate debuggers like gdb are also used. Measuring language usage It is very difficult to determine what are the most popular of modern programming languages. Some languages are very popular for particular kinds of applications (e.g., COBOL is still strong in the corporate data center, often on large mainframes, FORTRAN in engineering applications, and C in embedded applications), while some languages are regularly used to write many different kinds of applications. Methods of measuring language popularity include: counting the number of job advertisements that mention the languageSurvey of Job advertisements mentioning a given language>, the number of books teaching the language that are sold (this overestimates the importance of newer languages), and estimates of the number of existing lines of code written in the language (this underestimates the number of users of business languages such as COBOL). Debugging Debugging is a very important task for every programmer, because an erroneous program is often useless. Languages like C++ and Assembler are very challenging even to expert programmers because of failure modes like buffer overruns, bad pointers or uninitialized memory. A buffer overrun can damage adjacent memory regions and cause a failure in a totally different program line. Because of those memory issues tools like Valgrind, Purify or Boundschecker are virtually a necessity for modern software development in the C++ language. Languages such as Java, C#, PHP and Python protect the programmer from most of these runtime failure modes, but this may come at the price of a dramatically lower execution speed of the resulting program. This is acceptable for applications where execution speed is determined by other considerations such as database access or file I/O. The exact cost will depend upon specific implementation details. Modern Java virtual machines and .NET Common Language Runtime, for example, use a variety of sophisticated optimizations, including runtime conversion of interpreted instructions to native machine code (see Just-in-time compilation). See also *Algorithms *COmputer programming languages *Computer software *Data processing *Systems analysis References *Abma, J. S. (1964). Theory and research in programmed instruction: USAF Aerospace Medical Research Laboratories Memorandum No P-74 1964, 13. *Ahmed, A. M. (1993). Students' thought processes while engaged in computer programming: Dissertation Abstracts International. *Akchurin, I. A. (1965). Development of cybernetics and dialectics: Voprosy Filosofii 19(7) 1965, 22-30. *Alberti, M., Gavanelli, M., Lamma, E., Chesani, F., Mello, P., & Torroni, P. (2006). Compliance verification of agent interaction: A logic-based software tool: Applied Artificial Intelligence Vol 20(2-4) Feb-Apr 2006, 133-157. *Algina, J., & Hombo, C. M. (1998). Power calculation for independent samples Hotelling's Tsuperscript 2 using PROC IML in SAS: Educational and Psychological Measurement Vol 58(1) Feb 1998, 154-157. *Allbritton, D. W. (2003). Using open-source solutions to teach computing skills for student research: Behavior Research Methods, Instruments & Computers Vol 35(2) May 2003, 251-254. *Allen, J., Watson, J. A., & Howard, J. R. (1993). The impact of cognitive styles on the problem solving strategies used by preschool minority children in Logo microworlds: Journal of Computing in Childhood Education Vol 4(3-4) 1993, 203-217. *Allen, J. D. (1993). Effects of representation on programming behavior: Dissertation Abstracts International. *Alma'adeed, S., Iggins, C., & Elliman, D. (2004). Off-line recognition of handwritten Arabic words using multiple hidden Markov models: Knowledge-Based Systems Vol 17(2-4) May 2004, 75-79. *Altmann, E. M. (2001). Near-term memory in programming: A simulation-based analysis: International Journal of Human-Computer Studies Vol 54(2) Feb 2001, 189-210. *Alvarez-Torres, M. J., Punyashloke, M., & Zhao, Y. (2001). Judging a book by its cover! Cultural stereotyping of interactive media and its effect on the recall of text information: Journal of Educational Multimedia and Hypermedia Vol 10(2) 2001, 161-183. *Andrei, S. (2004). Counting for Satisfiability by Inverting Resolution: Artificial Intelligence Review Vol 22(4) Dec 2004, 339-366. *Andrews, M., & Prager, R. (1994). Genetic programming for the acquisition of double auction market strategies. Cambridge, MA: The MIT Press. *Andrews, M. W. (2003). Language learning and nonlinear dynamical systems. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Angluin, D., & Slonim, D. K. (1994). Randomly fallible teachers: Learning monotone DNF with an incomplete membership oracle: Machine Learning Vol 14(1) Jan 1994, 7-26. *Antona, M., Akoumianakis, D., & Stephanidis, C. (2001). "Generating" design spaces: An NLP approach to HCI design. Mahwah, NJ: Lawrence Erlbaum Associates Publishers. *Antony, S., Batra, D., & Santhanam, R. (2005). The use of a knowledge-based system in conceptual data modeling: Decision Support Systems Vol 41(1) Nov 2005, 176-188. *Applin, E. A. G. (2000). The application of language acquisition theory to programming concept instruction: Chunks versus programs from scratch. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Arai, O., & Fujita, H. (2003). Mathematical structure model for Word-Based Program: Knowledge-Based Systems Vol 16(7-8) Nov 2003, 399-411. *Armentano, M., Godoy, D., & Amandi, A. (2006). Personal assistants: direct manipulation vs. mixed initiative interfaces: International Journal of Human-Computer Studies Vol 64(1) Jan 2006, 27-35. *Armstrong, D. J. (2002). Charting the rocky shoals of an object-oriented mindshift. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Asparouhov, O., & Rubin, P. A. (2004). Oscillation Heuristics for the Two-group Classification Problem: Journal of Classification Vol 21(2) 2004, 255-277. *Axtell, C. M., Waterson, P. E., & Clegg, C. W. (1997). Problems integrating user participation into software development: International Journal of Human-Computer Studies Vol 47(2) Aug 1997, 323-345. *Baccino, T., & Kennedy, A. (1995). MICELAB: Spatial processing of mouse movement in Turbo Pascal: Behavior Research Methods, Instruments & Computers Vol 27(1) Feb 1995, 76-82. *Bakeman, R., & Quera, V. (2000). OTS: A program for converting Noldus Observer data files to SDIS files: Behavior Research Methods, Instruments & Computers Vol 32(1) Feb 2000, 207-212. *Balasubramanian, R., Allebach, J. P., & Bouman, C. A. (1994). Color-imaging quantization with use of a fast binary splitting technique: Journal of the Optical Society of America, A, Optics, Image Science & Vision Vol 11(11) Nov 1994, 2777-2786. *Barbosa, S. D. J., & de Souza, C. S. (2001). Extending software through metaphors and metonymies: Knowledge-Based Systems Vol 14(1-2) Mar 2001, 15-27. *Barfield, W. (1997). Skilled performance on software as a function of domain expertise and program organization: Perceptual and Motor Skills Vol 85(3, Pt 2) Dec 1997, 1471-1480. *Baron, J., & Siepmann, M. (2000). Techniques for creating and using Web questionnaires in research and testing. San Diego, CA: Academic Press. *Barron, B. (2004). Learning ecologies for the technological fluency: Gender and experience differences: Journal of Educational Computing Research Vol 31 2004, 1-36. *Bauerly, M., & Liu, Y. (2006). Computational modeling and experimental investigation of effects of compositional elements on interface and design aesthetics: International Journal of Human-Computer Studies Vol 64(8) Aug 2006, 670-682. *Bellamy, R. K. E. (1994). What does pseudo-code do? A psychological analysis of the use of pseudo-code by experienced programmers: Human-Computer Interaction Vol 9(2) 1994, 225-246. *Bennett, K. P., & Parrado-Hernandez, E. (2006). The interplay of optimization and machine learning research: Journal of Machine Learning Research Vol 7 2006, 1265-1281. *Bennett, R. E., & Wadkins, J. R. J. (1995). Interactive performance assessment in computer science: The advanced placement computer science (APCS) practice system: Journal of Educational Computing Research Vol 12(4) 1995, 363-378. *Bergkvist, A., Damaschke, P., & Luthi, M. (2006). Linear programs for hypotheses selection in probabilistic inference models: Journal of Machine Learning Research Vol 7 2006, 1339-1355. *Bernardo, M. A. (1992). Transfer effects of a high school computer programming course on mathematical modeling, procedural comprehension, and verbal problem solution: Dissertation Abstracts International. *Berry, K. J., Johnston, J. E., & Mielke, P. W., Jr. (2004). Exact Goodness-of-fit Tests For Unordered Equiprobable Categories: Perceptual and Motor Skills Vol 98(3,Pt1) Jun 2004, 909-919. *Berry, K. J., Johnston, J. E., & Mielke, P. W., Jr. (2005). Resampling Probability Values For Measures of Ordinal Variation and Consensus: Psychological Reports Vol 96(3) Jun 2005, 547-552. *Berry, K. J., & Mielke, P. W., Jr. (1996). Analysis of multivariate matched-paired data: A FORTRAN 77 program: Perceptual and Motor Skills Vol 83(3, Pt 1) Dec 1996, 788-790. *Bers, M. U., & Cassell, J. (1998). Interactive storytelling systems for children: Using technology to explore language and identity: Journal of Interactive Learning Research Vol 9(2) 1998, 183-215. *Bertels, K. (1994). A dynamic view on cognitive student modeling in computer programming: Journal of Artificial Intelligence in Education Vol 5(1) 1994, 85-105. *Bevan, W. (1966). A multipurpose stimulus-programming system: Journal of General Psychology 75(1) 1966, 147-149. *Bielaczyc, K. M. (1995). Learning through student-generated explanations: Investigating the effects of individual and collaborative explanation strategies and metacognition on the acquisition of knowledge and skills for computer programming. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Bisant, D. B., & Groninger, L. (1993). Cognitive processes in software: Fault detection: A review and synthesis: International Journal of Human-Computer Interaction Vol 5(2) Apr-Jun 1993, 189-206. *Bishop-Clark, C. (1995). Cognitive style and its effect on the stages of computer programming. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Bishop-Clark, C. (1995). Cognitive style, personality, and computer programming: Computers in Human Behavior Vol 11(2) Sum 1995, 241-260. *Bishop-Clark, C. (1998). Comparing understanding of programming design concepts using visual basic and traditional basic: Journal of Educational Computing Research Vol 18(1) 1998, 37-47. *Bishop-Clark, C., Courte, J., Evans, D., & Howard, E. V. (2007). A quantitative and qualitative investigation of using Alice programming to improve confidence, enjoyment and achievement among non-majors: Journal of Educational Computing Research Vol 37(2) 2007, 193-207. *Bishop-Clark, C., Courte, J., & Howard, E. V. (2006). Programming in pairs with Alice to improve confidence, enjoyment, and achievement: Journal of Educational Computing Research Vol 34(2) 2006, 213-228. *Bissett, A., & Shipton, G. (2000). Some human dimensions of computer virus creation and infection: International Journal of Human-Computer Studies Vol 52(5) May 2000, 899-913. *Blackwell, A. F., Whitley, K. N., Good, J., & Petre, M. (2001). Cognitive factors in programming with diagrams: Artificial Intelligence Review Vol 15(1-2) Mar 2001, 95-114. *Blough, E. B. (1999). Simplifying the construction of interactive programs in a functional programming environment. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Bocker, H.-D., Herczeg, J., & Pawlitschek, M. (1995). Toward visual smalltalk. Westport, CT: Ablex Publishing. *Boekkooi-Timminga, E. (1993). Computer-assisted test construction: Social Science Computer Review Vol 11(3) Fal 1993, 292-300. *Bokhorst, F. D. (1995). Bit-plane layering for high-resolution EGA and VGA graphics on the IBM PC/XT/AT: Behavior Research Methods, Instruments & Computers Vol 27(4) Nov 1995, 496-501. *Botta, M., Giordana, A., Saitta, L., Sebag, M., Cussens, J., & Frisch, A. M. (2004). Relational Learning as Search in a Critical Region: Journal of Machine Learning Research Vol 4(4) May 2004, 431-463. *Boy, G. A. (2000). Active design documents as software agents that mediate participatory design and traceability. Mahwah, NJ: Lawrence Erlbaum Associates Publishers. *Bras, B. A. (1993). Foundations for designing decision-based design processes: Dissertation Abstracts International. *Bray, A. D., & Alty, J. L. (1994). Multiple worlds: An approach to multimedia resource management using truth maintenance: Interacting with Computers Vol 6(2) Jun 1994, 135-150. *Breithaupt, K., Ariel, A., & Veldkamp, B. P. (2005). Automated Simultaneous Assembly for Multistage Testing: International Journal of Testing Vol 5(3) 2005, 319-330. *Brelstaff, G. J., & Wilson, J. B. (1994). Generating colour and texture verniers: International Journal of Psychophysiology Vol 16(2-3) May 1994, 199-208. *Brewer, R., & Perry, J. W. (1966). Application of adjunct auto-instruction to teaching computer programming: Journal of Experimental Education 34(4) 1966, 71-72. *Brichcin, M., & Rachardzo, R. (1995). Intentional vs. "artificial" planning of actions: Studia Psychologica Vol 37(2) 1995, 57-61. *Brooks, R. (1999). Towards a theory of the cognitive processes in computer programming: International Journal of Human-Computer Studies Vol 51(2) Aug 1999, 197-211. *Brouwer, P. S. (1993). An analysis of student debugging strategies: Dissertation Abstracts International. *Brown, D., Burnett, M., & Rothermel, G. (2003). End-User Testing for the Lyee Methodology using the Screen Transition Paradigm and WYSIWYT: Knowledge-Based Systems Vol 16(7-8) Nov 2003, 431-440. *Bryant, B. D. (1998). A sequentially articulated experiment to compare two instructional software input infrastructures. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Burch, N. R., Nettleton, W. J., Jr., Sweeney, J., & Edwards, R. J., Jr. (1964). Period analysis of the electroencephalagram on a general-purpose digital computer: Annals of the New York Academy of Sciences 115(2) 1964, 827-843. *Burnett, M. (2003). HCI research regarding end-user requirement specification: A tutorial: Knowledge-Based Systems Vol 16(7-8) Nov 2003, 341-349. *Bushe, M. M., Vaughan, J., & Rosenbaum, D. A. (1994). Pascal external functions for Strawberry Tree's "Analog Connection Workbench" on the Macintosh: Behavior Research Methods, Instruments & Computers Vol 26(4) Nov 1994, 461-466. *Byrne, B. M. (2001). Structural equation modeling with AMOS: Basic concepts, applications, and programming. Mahwah, NJ: Lawrence Erlbaum Associates Publishers. *Byun, H. E., & Cheverst, K. (2004). Utilizing Context History to Provide Dynamic Adaptations: Applied Artificial Intelligence Vol 18(6) Jul 2004, 533-548. *Caballero, R., Luque, M., Molina, J., & Ruiz, F. (2005). MOPEN: A computational package for Linear Multiobjective and Goal Programming problems: Decision Support Systems Vol 41(1) Nov 2005, 160-175. *Cadoli, M., & Mancini, T. (2007). Using a theorem prover for reasoning on constraint problems: Applied Artificial Intelligence Vol 21(4-5) Apr-May 2007, 383-404. *Calimeri, F., & lanni, G. (2006). Template programs for disjunctive logic programming: An operational semantics: AI Communications Vol 19(3) 2006, 193-206. *Calinon, S., & Billard, A. G. (2007). What is the teacher's role in robot programming by demonstration? Toward benchmarks for improved learning: Interaction Studies: Social Behaviour and Communication in Biological and Artificial Systems Vol 8(3) 2007, 441-464. *Canas, J. J., Bajo, M. T., Navarro, R., Padilla, F., & Puerta, M. d. C. (1998). Mental representation and computer programming: Cognitiva Vol 10(1-2) 1998, 239-255. *Carbogim, D. V., & Da Silva, F. S. C. (1998). Annotated logic applications for imperfect information: Applied Intelligence Vol 9(2) Sep 1998, 163-172. *Case, P., & Pineiro, E. (2006). Aesthetics, performativity and resistance in the narratives of a computer programming community: Human Relations Vol 59(6) Jun 2006, 753-782. *Castellan, N. J., Jr. (1988). A Well-Written Programming Guide: PsycCRITIQUES Vol 33 (8), Aug, 1988. *Cavus, N. (2007). Assessing the success rate of students using a learning management system together with a collaborative tool in web-based teaching of programming languages: Journal of Educational Computing Research Vol 36(3) 2007, 301-321. *Cavus, N., Uzunboylu, H., & Ibrahim, D. (2007). "Assessing the success rate of students using a learning management system together with a collaborative tool in web-based teaching of programming languages": Erratum: Journal of Educational Computing Research Vol 36(4) 2007, 253. *Chan, C. (1993). Implicit cognitive processes: Theoretical issues and applications in computer systems design: Dissertation Abstracts International. *Chang, S. E. (2000). Effects of computer experience and perception of task complexity on computer anxiety in adults learning programming-related skills: A quantitative study. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Chang, S. E. (2005). Computer anxiety and perception of task complexity in learning programming-related skills: Computers in Human Behavior Vol 21(5) Sep 2005, 713-728. *Chao, C.-J., & Salvendy, G. (1995). Impact of cognitive abilities of experts on the effectiveness of elicited knowledge: Behaviour & Information Technology Vol 14(3) May-Jun 1995, 174-182. *Chapanis, A. (1964). Knowledge of performance as an incentive in repetitive, monotonous tasks: Journal of Applied Psychology Vol 48(4) Aug 1964, 263-267. *Charlton, J. P., & Birkett, P. E. (1998). Psychological characteristics of students taking programming-oriented and applications-oriented computing courses: Journal of Educational Computing Research Vol 18(2) 1998, 163-182. *Chatel, S., & Detienne, F. (1996). Strategies in object-oriented design: Acta Psychologica Vol 91(3) Apr 1996, 245-269. *Chechile, R. A. (2003). Review of The Neural Simulation Language: A System for Brain Modeling: Journal of Mathematical Psychology Vol 47(3) Jun 2003, 385-386. *Chee, Y. S. (1995). Cognitive apprenticeship and its application to the teaching of Smalltalk in a multimedia interactive learning environment: Instructional Science Vol 23(1-3) May 1995, 133-161. *Chen, G. (2000). Metric two-way multidimensional scaling and circular unidimensional scaling: Mixed integer programming approaches. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Chen, M. (1995). A methodology for characterizing computer-based learning environments: Instructional Science Vol 23(1-3) May 1995, 183-220. *Chen, T. Y., Grant, D. D., Lau, M. F., Ng, S. P., & Vasa, V. R. (2006). BEAT: A web-based Boolean expression fault-based test case generation tool: International Journal of Distance Education Technologies Vol 4(3) 2006, 44-56. *Chittister, C., & Haimes, Y. Y. (1993). Risk associated with software development: A holistic framework for assessment and management: IEEE Transactions on Systems, Man, & Cybernetics Vol 23(3) May-Jun 1993, 710-723. *Cho, S.-B., & Shimohara, K. (1998). Evolutionary learning of modular neural networks with genetic programming: Applied Intelligence Vol 9(3) Nov-Dec 1998, 191-200. *Choi, K. S. (2005). A discovery and analysis of influencing factors of pair programming. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Chou, W.-C. (1993). The effects of programming instruction in procedural programming and logic programming environments on problem-solving ability: Dissertation Abstracts International. *Chuckran, D. A. (1992). Effect of student-produced interactive multimedia modules on student learning: Dissertation Abstracts International. *Clark, J. A., Jacob, J. L., Maitra, S., & Stanica, P. (2004). Almost Boolean Functions: The Design of Boolean Functions by Spectral Inversion: Computational Intelligence Vol 20(3) Aug 2004, 450-462. *Clark, K. L., & McCabe, F. G. (2006). Ontology oriented programming in Go! : Applied Intelligence Vol 24(3) Jun 2006, 189-204. *Cleland, C. E. (2001). Recipes, algorithms, and programs: Minds and Machines Vol 11(2) May 2001, 219-237. *Cohen, A. D. (1997). The value of metaphors in conceptual user-interface design. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Cohen, W. W. (1998). Hardness results for learning first-order representations and programming by demonstration: Machine Learning Vol 30(1-3) Jan-Mar 1998, 57-87. *Colby, K. M., & Gilbert, J. P. (1964). Programming a computer model of neurosis: Journal of Mathematical Psychology 1(2) 1964, 405-417. *Collani, G. v., & Schomann, M. (1995). The process of acquisition of a new programming language (LISP): Evidence for transfer of experience and knowledge in programming. Westport, CT: Ablex Publishing. *Collar, E., Jr. (2006). An investigation of programming code textbase readability based on a cognitive readability model. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Colley, A., Henry, O., Holmes, S., & James, L. (1996). Perceptions of ability to program or to use a word processor: Computers in Human Behavior Vol 12(3) Fal 1996, 329-337. *Conceicao, S., Sherry, L., & Gibson, D. (2004). Using Developmental Research to Design, Develop, and Evaluate an Urban Education Portal: Journal of Interactive Learning Research Vol 15(3) 2004, 271-286. *Corritore, C. L., & Wiedenbeck, S. (1999). Mental representations of expert procedural and object-oriented programmers in a software maintenance task: International Journal of Human-Computer Studies Vol 50(1) Jan 1999, 61-83. *Corritore, C. L., & Wiedenbeck, S. (2001). An exploratory study of program comprehension strategies of procedural and object-oriented programmers: International Journal of Human-Computer Studies Vol 54(1) Jan 2001, 1-23. *Costa, V. S., Srinivasan, A., Camacho, R., Blockeel, H., Demoen, B., Janssens, G., et al. (2004). Query Transformations for Improving the Efficiency of ILP Systems: Journal of Machine Learning Research Vol 4(4) May 2004, 465-491. *Crammer, K., Singer, Y., Kandola, J., Hofmann, T., Poggio, T., & Shawe-Taylor, J. (2003). A family of additive online algorithms for category ranking: Journal of Machine Learning Research Vol 3(6) Aug 2003, 1025-1058. *Craw, S., Jarmulak, J., & Rowe, R. (2001). Maintaining retrieval knowledge in a case-based reasoning system: Computational Intelligence Vol 17(2) May 2001, 346-363. *Curtis, B. (1995). Objects of our desire: Empirical research on object-oriented development: Human-Computer Interaction Vol 10(2-3) 1995, 337-344. *Cushion, S. (2005). A software development approach for computer assisted language learning: Computer Assisted Language Learning Vol 18(4) Oct 2005, 273-286. *Dailey, J. C. (1999). Programming for learning: A discourse analysis of peer communication while programming a computer. (computer programming, human computer interaction). Dissertation Abstracts International Section A: Humanities and Social Sciences. *Dain, R. A. (1998). Developing mobile robot wall-following algorithms using genetic programming: Applied Intelligence Vol 8(1) Jan 1998, 33-41. *Darcy, D. P. (2002). Software complexity: Integrating the task complexity model and cognition. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Datta, A., & Thomas, H. (1999). The cube data model: A conceptual model and algebra for on-line analytical processing in data warehouses: Decision Support Systems Vol 27(3) Dec 1999, 289-301. *Davies, S. P. (1993). Models and theories of programming strategy: International Journal of Man-Machine Studies Vol 39(2) Aug 1993, 237-267. *Davies, S. P. (1993). The structure and content of programming knowledge: Disentangling training and language effects in theories of skill development: International Journal of Human-Computer Interaction Vol 5(4) Oct-Dec 1993, 325-346. *Davues, S. P. (1991). The role of notation and knowledge representation in the determination of programming strategy: A framework for integrating models of programming behavior: Cognitive Science: A Multidisciplinary Journal Vol 15(4) Oct-Dec 1991, 547-572. *de Gracia Blanco, M., & Castello Tarrida, A. (2002). Approach to the origins of cognitive psychology of thought: Revista de Psicologia General y Aplicada Vol 55(4) Oct 2002, 515-539. *de Greef, H. P., & Neerincx, M. A. (1995). Cognitive support: Designing aiding to supplement human knowledge: International Journal of Human-Computer Studies Vol 42(5) May 1995, 531-571. *de Leeuw, J., & Kreft, I. G. G. (1995). Questioning multilevel models: Journal of Educational and Behavioral Statistics Vol 20(2) Sum 1995, 171-189. *Debenham, J. (2006). Maintaining knowledge with a formal model: Applied Intelligence Vol 24(3) Jun 2006, 205-218. *Deek, F. P. (1998). An integrated environment for problem solving and program development. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Deek, F. P., & Espinosa, I. (2005). An Evolving Approach to Learning Problem Solving and Program Development: The Distributed Learning Model: International Journal on E-Learning Vol 4(4) 2005, 409-426. *Deek, F. P., & McHugh, J. A. (2002). An empirical evaluation of Specification Oriented Language in Visual Environment for Instruction Translation (SOLVEIT): A problem-solving and program development environment: Journal of Interactive Learning Research Vol 13(4) 2002, 339-373. *Delclos, V. R., & Burns, M. S. (1993). Mediational elements in computer programming instruction: An exploratory study: Journal of Computing in Childhood Education Vol 4(2) 1993, 137-152. *Delozanne, E., Le Calvez, F., Merceron, A., & Labat, J.-M. (2007). A structured set of design patterns for learners' assessment: Journal of Interactive Learning Research Vol 18(2) 2007, 309-333. *Denner, J., & Werner, L. (2007). Computer programming in middle school: How pairs respond to challenges: Journal of Educational Computing Research Vol 37(2) 2007, 131-150. *Desain, P., Honing, H., vanThienen, H., & Windsor, L. (1998). Computational modeling of music cognition: Problem or solution? : Music Perception Vol 16(1) Fal 1998, 151-166. *Detienne, F. (1995). Design strategies and knowledge in object-oriented programming: Effects of experience: Human-Computer Interaction Vol 10(2-3) 1995, 129-169. *Detienne, F. (1997). Assessing the cognitive consequences of the object-oriented approach: A survey of empirical research on object-oriented design by individuals and teams: Interacting with Computers Vol 9(1) Aug 1997, 47-72. *Dey, A. K., Abowd, G. D., & Wood, A. (1998). CyberDesk: A framework for providing self-integrating context-aware services: Knowledge-Based Systems Vol 11(1) Sep 1998, 3-13. *D'Haeseleer, P., & Bluming, J. (1994). Effects of locality in individual and population evolution. Cambridge, MA: The MIT Press. *Dicheva, D., & Close, J. (1996). Mental models of recursion: Journal of Educational Computing Research Vol 14(1) 1996, 1-23. *Dickie, R. D. (1963). Psychologists at work: The psychologist programmer: The Canadian Psychologist Vol 4a(1) Jan 1963, 19-21. *Dijkstra, A., & de Vries, H. (1999). The development of computer-generated tailored interventions: Patient Education and Counseling Vol 36(2) Feb 1999, 193-203. *Divina, F. (2006). Evolutionary concept learning in First Order Logic: An overview: AI Communications Vol 19(1) 2006, 13-33. *Dixon, M. R., & MacLin, O. H. (2003). Visual basic for behavioral psychologists. Reno, NV: Context Press. *Do, E. Y.-L. (1999). The right tool at the right time: Investigation of freehand drawing as an interface to knowledge-based design tools. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Dolnykova, A. A., & Chudova, N. V. (1997). Psychological peculiarities of the superprogrammers: Psikhologicheskiy Zhurnal Vol 18(1) Jan-Feb 1997, 113-121. *Domingue, J., & Mulholland, P. (1997). Teaching programming at a distance: The Internet Software Visualization Laboratory: Journal of Interactive Media in Education No 97(1) 1997, No Pagination Specified. *Downing, C. E., & Ringuest, J. L. (2002). Implementing and testing a complex interactive MOLP algorithm: Decision Support Systems Vol 33(4) Aug 2002, 363-374. *Dragoni, N., Gaspari, M., & Guidi, D. (2007). An ACL for specifying fault-tolerant protocols: Applied Artificial Intelligence Vol 21(4-5) Apr-May 2007, 361-381. *Draney, K. L., Pirolli, P., & Wilson, M. (1995). A measurement model for a complex cognitive skill. Hillsdale, NJ, England: Lawrence Erlbaum Associates, Inc. *Du Boulay, B., O'Shea, T., & Monk, J. (1999). The black box inside the glass box: Presenting computing concepts to novices: International Journal of Human-Computer Studies Vol 51(2) Aug 1999, 265-277. *Easton, C. E., & Watson, J. A. (1993). Spatial strategy use during Logo mastery: The impact of cognitive style and development level: Journal of Computing in Childhood Education Vol 4(1) 1993, 77-96. *Eichler, M. L., Xavier, P. R., Procempa, R. C. A., Forte, R. C., Del Pino, J. C., & de Azeredo, S. (2005). Carbopolis: A Java Technology-Based Free Software for Environmental Education: Journal of Computers in Mathematics and Science Teaching Vol 24(1) 2005, 43-72. *Eisenstadt, M., Price, B. A., & Domingue, J. (1992). Software visualization as a pedagogical tool: Instructional Science Vol 21(5) 1992-1993, 335-364. *Ellis, T. J., & Hafner, W. (2003). Engineering an online course: Applying the 'secrets' of computer programming to course development: British Journal of Educational Technology Vol 34(5) Nov 2003, 639-650. *Emurian, H. H. (2006). Assessing the effectiveness of programmed instruction and collaborative peer tutoring in teaching JavaTM: International Journal of Information and Communication Technology Education Vol 2(2) 2006, 1-16. *Epstein, S. L. (1995). Learning in the right places: Journal of the Learning Sciences Vol 4(3) 1995, 281-319. *Epstein, S. L., Freuder, E. C., & Wallace, R. J. (2005). Learning To Support Constraint Programmers: Computational Intelligence Vol 21(4) Nov 2005, 336-371. *Etzkorn, L. H., & Davis, C. G. (1996). Automated object-oriented reusable component identification: Knowledge-Based Systems Vol 9(8) Dec 1996, 517-524. *Farley, A. M. (1978). So You Want to Write a Computer Simulation: PsycCRITIQUES Vol 23 (9), Sep, 1978. *Farley, A. M. (1981). Techniques for Creating Intelligent Programs: PsycCRITIQUES Vol 26 (1), Jan, 1981. *Felici, G., & Gentile, C. (2004). A Polyhedral Approach for the Staff Rostering Problem: Management Science Vol 50(3) Mar 2004, 381-393. *Fernaeus, Y., & Tholander, J. (2006). Designing for programming as joint performances among groups of children: Interacting with Computers Vol 18(5) Sep 2006, 1012-1031. *Fernandez-Ballesteros, R., Caprara, M. G., & Garcia, L. F. (2005). Vivir con vitalidad-mReg.: A European multimedia programme: Psychology in Spain Vol 9 2005, 1-12. *Ferrario, M. A., & Smyth, B. (2001). Distributing case-base maintenance: The collaborative maintenance approach: Computational Intelligence Vol 17(2) May 2001, 315-330. *Fiser, J., Biederman, I., & Cooper, E. E. (1996). To what extent can matching algorithms based on direct outputs of spatial filters account for human object recognition? : Spatial Vision Vol 10(3) 1996, 237-271. *Fisher, M., Bordini, R. H., Hirsch, B., & Torroni, P. (2007). Computational logics and agents: A road map of current technologies and future trends: Computational Intelligence Vol 23(1) Feb 2007, 61-91. *Fleming, J. S. (2003). Computing measures of simplicity of fit for loadings in factor-analytically derived scales: Behavior Research Methods, Instruments & Computers Vol 35(4) Nov 2003, 520-524. *Fletcher, C. R. (1988). AI Programming Techniques: Good Medicine for Cognitive Modeling: PsycCRITIQUES Vol 33 (11), Nov, 1988. *Fleury, A. E. (1993). Student beliefs about Pascal programming: Journal of Educational Computing Research Vol 9(3) 1993, 355-371. *Flor, N. V. (1995). Dynamic organization in multi-agent distributed cognitive systems. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Fourer, R. (1997). Database structures for mathematical programming models: Decision Support Systems Vol 20(4) Aug 1997, 317-344. *Frank, M. R., & Szekely, P. (1998). Adaptive Forms: An interaction technique for entering structured data: Knowledge-Based Systems Vol 11(1) Sep 1998, 37-45. *Freeman, J. T. (1994). The organization and character of programmers' knowledge concerning software bugs. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Fung, P., O'Shea, T., Goldson, D., Reeves, S., & et al. (1994). Why computer science students find formal reasoning frightening: Journal of Computer Assisted Learning Vol 10(4) Dec 1994, 240-250. *Furman, S. M. (1998). Improving software comprehension. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Gahan, C., & Hannibal, M. (1998). Doing qualitative research using QSR NUD*IST. Thousand Oaks, CA: Sage Publications Ltd. *Garcez, A. S. A., & Zaverucha, G. (1999). The Connectionist Inductive Learning and Logic Programming System: Applied Intelligence Vol 11(1) Jul 1999, 59-77. *Gegg-Harrison, T. S. (1994). Exploiting program schemata in an automated program debugger: Journal of Artificial Intelligence in Education Vol 5(2) 1994, 255-278. *Geller, A. S., Schleifer, I. K., Sederberg, P. B., Jacobs, J., & Kahana, M. J. (2007). PyEPL: A cross-platform experiment-programming library: Behavior Research Methods Vol 39(4) Nov 2007, 950-958. *Gerola, R. J. (1998). Identification of object-oriented computer programmer mastery status through evaluation of object-oriented programming semantic knowledge. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Gillespie, C. W., & Beisser, S. (2001). Developmentally appropriate LOGO computer programming with young children: Information Technology in Childhood Education Annual Vol 12 2001, 229-245. *Giordana, A., Neri, F., Saitta, L., & Botta, M. (1997). Integrating multiple learning strategies in first order logics: Machine Learning Vol 27(3) Jun 1997, 209-240. *Gips, J. (1995). Towards the ethical robot. Menlo Park, CA ; Cambridge, MA: American Association for Artificial Intelligence; The MIT Press. *Goldman, S. A., & Sloan, R. H. (1994). The power of self-directed learning: Machine Learning Vol 14(1) Jan 1994, 271-294. *Gomez, L. M. (1986). Human-Computer Interaction Research: A Mixed Bag: PsycCRITIQUES Vol 31 (10), Oct, 1986. *Gonzalez, A. I., Grana, M., D'Anjou, A., Albizuri, F. X., & Torrealdea, F. J. (1998). A comparison of experimental results with an evolution strategy and competitive neural networks for near real-time color quantization of image sequences: Applied Intelligence Vol 8(1) Jan 1998, 43-51. *Good, J., & Oberlander, J. (2002). Verbal effects of visual programs: Information type, structure and error in program summaries: Document Design Vol 3(2) 2002, 121-134. *Gorsuch, R. L. (1966). A Fortran item analysis program for items scored on a categorical or interval basis: Educational and Psychological Measurement 26(1) 1966, 179-183. *Grace, H. A. (1963). Programming and readability: California Journal of Educational Research 14(4) 1963, 164-166. *Griffin, P., Belyaeva, A., & Soldatova, G. (1993). Creating and reconstituting contexts for educational interactions, including a computer program. New York, NY: Oxford University Press. *Gruhn, V., Ijioui, R., Peters, D., & Schafer, C. (2003). Configuration management for Lyee software: Knowledge-Based Systems Vol 16(7-8) Nov 2003, 441-447. *Gullahorn, J. T., & Gullahorn, J. E. (1963). A computer model of elementary social behavior: Behavioral Science 8(4) 1963, 354-362. *Gum, S. T. (1997). Computer programming: Science, art, or both? Dissertation Abstracts International Section A: Humanities and Social Sciences. *Gustafsson, J.-E., & Martenson, R. (2002). Hands-On Approach to Structural Equation Modeling: PsycCRITIQUES Vol 47 (4), Aug, 2002. *Haberland, H. (1996). "And ye shall be as machines"--or should machines be as us? On the modeling of matter and mind. New York, NY: Elsevier Science. *Hall, L. E., & Bescos, X. (1995). Menu--what menu? : Interacting with Computers Vol 7(4) Dec 1995, 383-394. *Hall, R. I., Aitchison, P. W., & Kocay, W. L. (1994). Causal policy maps of managers: Formal methods for elicitation and analysis: System Dynamics Review Vol 10(4) Win 1994, 337-360. *Hammond, K., Converse, T., Marks, M., & Seifert, C. M. (1993). Opportunism and learning: Machine Learning Vol 10(3) Mar 1993, 279-309. *Hao, C., Clark, J. A., & Jacob, J. L. (2004). Automated Design of Security Protocols: Computational Intelligence Vol 20(3) Aug 2004, 504-516. *Hassenzahl, M. (2000). Prioritizing usability problems: Data-driven and judgement-driven severity estimates: Behaviour & Information Technology Vol 19(1) Jan-Feb 2000, 29-42. *Hausen, H.-L. (1998). A rule-based process model for cooperative software projects Tailoring and testing a software process to be used on the Web: Knowledge-Based Systems Vol 11(2) Oct 1998, 105-113. *Haussler, D., Kearns, M., & Schapire, R. E. (1994). Bounds on the sample complexity of Bayesian learning using information theory and the VC dimension: Machine Learning Vol 14(1) Jan 1994, 83-113. *Heintz, T. J. (1993). An object-oriented architecture for group decision support systems: Group Decision and Negotiation Vol 2(1) Mar 1993, 5-25. *Helmbold, D. P., & Long, P. M. (1994). Tracking drifting concepts by minimizing disagreements: Machine Learning Vol 14(1) Jan 1994, 27-45. *Herbert, L. B. (1999). Determining where to include users in the icon development process: A reliability and validity study. (interface). Dissertation Abstracts International: Section B: The Sciences and Engineering. *Herbsleb, J. D., Klein, H., Olson, G. M., Brunner, H., & et al. (1995). Object-oriented analysis and design in software project teams: Human-Computer Interaction Vol 10(2-3) 1995, 249-292. *Herrick, R. M., & Denelsbeck, J. S. (1963). A system for programming experiments and for recording and analyzing data automatically: Journal of the Experimental Analysis of Behavior 6(4) 1963, 631-635. *Hinesley, G. A. (2005). The impact of graphical conventions and layout location on search for webpage widgets. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Holden, E. W., Grossman, E., Nguyen, H. T., Gunter, M. J., Grebosky, B., Von Worley, A., et al. (2005). Developing a Computer Algorithm to Identify Epilepsy Cases in Managed Care Organizations: Disease Management Vol 8(1) Feb 2005, 1-14. *Holland, A., & O'Sullivan, B. (2004). Towards fast vickrey pricing using constraint programming: Artificial Intelligence Review Vol 21(3) May 2004, 335-352. *Holland, D., & Reeves, J. R. (1996). Activity theory and the view from somewhere: Team perspectives on the intellectual work of programming. Cambridge, MA: The MIT Press. *Hong, J. (2004). Guided programming and automated error analysis in an intelligent Prolog tutor: International Journal of Human-Computer Studies Vol 61(4) Oct 2004, 505-534. *Howard, J. R., Watson, J. A., & Allen, J. (1993). Cognitive style and the selection of Logo problem-solving strategies by young Black children: Journal of Educational Computing Research Vol 9(3) 1993, 339-354. *Hoyles, C. (1995). "An investigation of Year 7 pupils learning CONTROL LOGO": Comment: Journal of Computer Assisted Learning Vol 11(3) Sep 1995, 192. *Huang, P., Scheller-Wolf, A., & Sycara, K. (2002). Design of a multi-unit double auction E-market: Computational Intelligence Vol 18(4) Nov 2002, 596-617. *Hubert, L. J., Arabie, P., & Meulman, J. J. (2002). Linear unidimensional scaling in the L-sub-2-norm: Basic optimization methods using MATLAB: Journal of Classification Vol 19(2) 2002, 303-328. *Huitzing, H. A. (2004). An Interactive Method to Solve Infeasibility in Linear Programming Test Assembling Models: Journal of Educational Measurement Vol 41(2) Sum 2004, 175-192. *Hwang, G.-J., Lin, B. M. T., & Lin, T.-L. (2006). An effective approach for test-sheet composition with large-scale item banks: Computers & Education Vol 46(2) Feb 2006, 122-139. *Inder, R. (2000). CAPE: Extending CLIPS for the internet: Knowledge-Based Systems Vol 13(2-3) Apr 2000, 151-157. *Ippel, M. J., & Muelemans, C. J. M. (1998). A cybernetic approach to study the learnability of the LOGO turtle world: Journal of Educational Computing Research Vol 19(2) 1998, 191-221. *Irtel, H. (1997). PXL: A library for psychological experiments on IBM PC type computers: Spatial Vision Vol 10(4) 1997, 467-469. *Ishizaka, A., & Lusti, M. (2006). How to Program a Domain Independent Tracer for Explanations: Journal of Interactive Learning Research Vol 17(1) 2006, 57-69. *Ishizuka, M., & Matsuo, Y. (2002). SL method for computing a near-optimal solution using linear and non-linear programming in cost-based hypothetical reasoning: Knowledge-Based Systems Vol 15(7) Sep 2002, 369-376. *Iversen, J., & Mathiassen, L. (2003). Cultivation and engineering of a software metrics program: Information Systems Journal Vol 13(1) Jan 2003, 3-19. *Jehng, J.-C. J. (1997). The psycho-social processes and cognitive effects of peer-based collaborative interactions with computers: Journal of Educational Computing Research Vol 17(1) 1997, 19-46. *Jehng, J.-C. J., & Chan, T.-W. (1998). Designing computer support for collaborative visual learning in the domain of computer programming: Computers in Human Behavior Vol 14(3) Aug 1998, 429-448. *Jenkins, J. A. (1994). Facilitating software reuse by structuring the SPS user interface management system's software library according to programmer mental models. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Jeon, J.-C., & Yoo, K.-Y. (2004). Design of Montgomery Multiplication Architecture Based on Programmable Cellular Automata: Computational Intelligence Vol 20(3) Aug 2004, 496-502. *Jerome, E. A., Young, M. L., & Umberger, S. (1964). A problem programmer: Perceptual and Motor Skills 19(3) 1964, 711-717. *Jo, G. S., & McAloon, K. (1996). Anticipatory pruning networks and forward checking in CLP over continuous domains: Decision Support Systems Vol 18(3-4) Nov 1996, 327-340. *Johnson, P., Terveen, L., & Marks, J. (1998). Guest editorial: Knowledge-Based Systems Vol 11(1) Sep 1998, 1-2. *Jones, A. (1992). Conceptual models of programming environments: How learners use the glass box: Instructional Science Vol 21(6) 1992-1993, 473-500. *Jones, J. D. (2006). A different paradigm for expert systems: An introduction to logic programming and related knowledge representation issues: Expert Systems: International Journal of Knowledge Engineering and Neural Networks Vol 23(5) Nov 2006, 342-355. *Kafai, Y. B. (1995). Minds in play: Computer game design as a context for children's learning. Hillsdale, NJ, England: Lawrence Erlbaum Associates, Inc. *Kahler, S. E. (2003). A comparison of knowledge acquisition methods for the elicitation of procedural mental models. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Kalles, D. (2008). Students working for students on programming courses: Computers & Education Vol 50(1) Jan 2008, 91-97. *Karpov, V. V. (1964). The development of self-pacing as a function of programing the timing and the sequence of the steps of a work process: Voprosy Psychologii No 2 1964, 103-111. *Kehoe, C., Stasko, J., & Taylor, A. (2001). Rethinking the evaluation of algorithm animations as learning aids: An observational study: International Journal of Human-Computer Studies Vol 54(2) Feb 2001, 265-284. *Kenner, O. B. X. (1993). Personality characteristics of college students in computer programming as compared to professional computer programmers: Dissertation Abstracts International. *Kersting, K. (2006). An inductive logic programming approach to statistical relational learning: AI Communications Vol 19(4) 2006, 389-390. *Khor, E. F., Tan, K. C., Lee, T. H., & Goh, C. K. (2005). A Study on Distribution Preservation Mechanism in Evolutionary Multi-Objective Optimization: Artificial Intelligence Review Vol 23(1) May 2005, 31-56. *Kietz, J.-U., & Morik, K. (1994). A polynomial approach to the constructive induction of structural knowledge: Machine Learning Vol 14(1) Jan 1994, 193-217. *Kim, C., & Lee, J. K. (1996). Automatic structural identification and relaxation for integer programming: Decision Support Systems Vol 18(3-4) Nov 1996, 253-271. *Kim, M. S. (1997). A study on the development and validation of computer programmer aptitude inventory (CPAI): Korean Journal of Industrial & Organizational Psychology Vol 10(1) 1997, 103-121. *Kingston, J. K. C. (1998). Designing knowledge based systems: The CommonKADS design model: Knowledge-Based Systems Vol 11(5-6) Nov 1998, 311-319. *Kinnear, K. E., Jr. (1994). Advances in genetic programming. Cambridge, MA: The MIT Press. *Kivi, M.-R., Gronfors, T., & Koponen, A. (1998). MOTHER: System for continuous capturing of display stream: Behaviour & Information Technology Vol 17(3) May-Jun 1998, 152-154. *Koza, J. R., Rice, J. P., & Roughgarden, J. (1992). Evolution of food-foraging strategies for the Caribbean Anolis lizard using genetic programming: Adaptive Behavior Vol 1(2) Fal 1992, 171-199. *Krems, J. F. (1995). Expert strategies in debugging: Experimental results and a computational model. Westport, CT: Ablex Publishing. *Krylov, I. N., & Baranov, V. M. (1997). Computerized visual-search tests for evaluating the efficiency of selective attention: Human Physiology Vol 23(5) Sep-Oct 1997, 634-636. *Kushan, B. (1993). Programming concepts and problem-solving strategies emphasized in high school courses in BASIC: Dissertation Abstracts International. *Kushchu, I. (2002). An evaluation of evolutionary generalisation in genetic programming: Artificial Intelligence Review Vol 18(1) Sep 2002, 3-14. *Kushmerick, N. (1997). Software agents and their bodies: Minds and Machines Vol 7(2) May 1997, 227-247. *Laird, J. E., & Rosenbloom, P. S. (1996). The evolution of the Soar cognitive architecture. Hillsdale, NJ, England: Lawrence Erlbaum Associates, Inc. *Lane, D. C. (1993). The road not taken: Observing a process of issue selection and model conceptualization: System Dynamics Review Vol 9(3) Fal 1993, 239-264. *Lau, T., Wolfman, S. A., Domingos, P., & Weld, D. S. (2003). Programming by Demonstration Using Version Space Algebra: Machine Learning Vol 53(1-2) Oct 2003, 111-156. *Laursen, B., & Andersen, P. B. (1993). Drawing and programming. New York, NY: Cambridge University Press. *Laverty, J. P. (1994). The interaction of computer program debugging tools, field dependence, and computer programming languages in higher education computer language courses. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Law, L.-C. (1998). A situated cognition view about the effects of planning and authorship on computer program debugging: Behaviour & Information Technology Vol 17(6) Nov-Dec 1998, 325-337. *Lee, A. Y. (1993). Across-domain transfer of diagnostic skill: Dissertation Abstracts International. *Lee, J. K. (1996). Preface: Unified programming: Decision Support Systems Vol 18(3-4) Nov 1996, 215. *Lee, M. O. C., & Thompson, A. (1997). Guided instruction in logo programming and the development of cognitive monitoring strategies among college students: Journal of Educational Computing Research Vol 16(2) 1997, 125-144. *Lei, P.-W., & Wu, Q. (2007). CTTITEM: SAS macro and SPSS syntax for classical item analysis: Behavior Research Methods Vol 39(3) Aug 2007, 527-530. *Lenoir, B. A. (1993). The effects of strategy training for field-independent and field-dependent students on computer programming performance: Dissertation Abstracts International. *Leonard, M. J. (1993). Learning computer programming: Templates, structure, strategies, and more: Dissertation Abstracts International. *Li, B., & Liu, Y. (2002). When eigenfaces are combined with wavelets: Knowledge-Based Systems Vol 15(5-6) Jul 2002, 343-347. *Lieberman, H. (1995). A demonstrational interface for recording technical procedures by annotation of videotaped examples: International Journal of Human-Computer Studies Vol 43(3) Sep 1995, 383-417. *Lieberman, H. (2002). Art imitates life: Programming by example as an imitation game. Cambridge, MA: MIT Press. *Liffick, B. W. (1994). A programming plans paradigm for a novice programmer's support environment. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Lingras, P., & Huang, X. (2005). Statistical, Evolutionary, and Neurocomputing Clustering Techniques: Cluster-Based vs Object-Based Approaches: Artificial Intelligence Review Vol 23(1) May 2005, 3-29. *Lisi, F. A., & Malerba, D. (2004). Inducing Multi-Level Association Rules from Multiple Relations: Machine Learning Vol 55(2) May 2004, 175-210. *Liu, C., & Zhong, N. (2001). Rough problem settings for ILP dealing with imperfect data: Computational Intelligence Vol 17(3) Aug 2001, 446-459. *Liu, M., & Pedersen, S. (1998). The effect of being hypermedia designers on elementary school students' motivation and learning of design knowledge: Journal of Interactive Learning Research Vol 9(2) 1998, 155-182. *Loehlin, J. C. (1969). Review of Digital Computing: Fortran IV and its Applications in Behavioral Science: PsycCRITIQUES Vol 14 (4), Apr, 1969. *Lorenzo-Seva, U., & Ferrando, P. J. (2003). IMINCE: An unrestricted factor-analysis-based program for assessing measurement invariance: Behavior Research Methods, Instruments & Computers Vol 35(2) May 2003, 318-321. *Lu, E. J. L., & Chen, Y. H. (2006). Design of a delegable SCORM conformant learning management system: Journal of Computer Assisted Learning Vol 22(6) Oct 2006, 423-436. *Lu, W., & Traore, I. (2004). Detecting New Forms of Network Intrusion Using Genetic Programming: Computational Intelligence Vol 20(3) Aug 2004, 476-494. *Lui, K. M., & Chan, K. C. C. (2006). Pair programming productivity: Novice-novice vs. expert-expert: International Journal of Human-Computer Studies Vol 64(9) Sep 2006, 915-925. *Lynn, K.-M., Raphael, C., Olefsky, K., & Bachen, C. M. (2003). Bridging the gender gap in computing: An integrative approach to content design for girls: Journal of Educational Computing Research Vol 28(2) 2003, 143-162. *Ma, Y., Paterson, H. M., & Pollick, F. E. (2006). A motion capture library for the study of identity, gender, and emotion perception from biological motion: Behavior Research Methods Vol 38(1) Feb 2006, 134-141. *Maass, W., & Turan, G. (1994). Algorithms and lower bounds for on-line learning of geometrical concepts: Machine Learning Vol 14(1) Jan 1994, 251-269. *Machanick, P. (2007). Teaching Java backwards: Computers & Education Vol 48(3) Apr 2007, 396-408. *MacLin, O. H., Dixon, M. R., Robinson, A., & Daugherty, D. (2006). Writing a Simple Slot Machine Simulation Program. Reno, NV: Context Press. *Maheswari, V. U., Siromoney, A., Mehata, K. M., & Inoue, K. (2001). The variable precision rough set inductive logic programming model and strings: Computational Intelligence Vol 17(3) Aug 2001, 460-471. *Major, R. L. (2000). A complexity model and a polynomial algorithm for decision-tree-based feature construction: Computational Intelligence Vol 16(1) Feb 2000, 53-78. *Marmaras, N., Vassilakopoulou, P., & Salvendy, G. (1997). Developing a cognitive aid for CNC lathe programming through a program-driven approach: International Journal of Cognitive Ergonomics Vol 1(3) 1997, 267-289. *Marx, M. H., Tombaugh, T. N., Hatch, R. S., & Tombaugh, J. W. (1965). Controlled operant conditioning boxes with discrete-trail programming for multiple experimental use: Perceptual and Motor Skills 21(1) 1965, 247-254. *Masand, B. (1994). Optimizing confidence of text classification by evolution of symbolic expressions. Cambridge, MA: The MIT Press. *Matthis, B. G. (1999). Voices from the other side of the screen: Software designers reveal their stories that reside within their creations. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Mayhew, D. J. (2005). A Design Process for Web Usability. Mahwah, NJ: Lawrence Erlbaum Associates Publishers. *McAllister, A. P. (1994). Interpreting the programming process: A study of the problem-solving strategies of young gifted students learning LOGO. Dissertation Abstracts International Section A: Humanities and Social Sciences. *McCauley, R., Murphy, L., Westbrook, S., Haller, S., Zander, C., Fossum, T., et al. (2005). What do successful computer science students know? An integrative analysis using card sort measures and content analysis to evaluate graduating students' knowledge of programming concepts: Expert Systems: International Journal of Knowledge Engineering and Neural Networks Vol 22(3) Jul 2005, 147-159. *McGraw, K. O., & Tsai, W.-S. (1993). A computer program for conducting mental rotation experiments: Teaching of Psychology Vol 20(4) Dec 1993, 246-247. *McKay, E. (1999). Exploring the effect of graphical metaphors on the performance of learning computer programming concepts in adult learners: A pilot study: Educational Psychology Vol 19(4) Dec 1999, 471-487. *McKay, E. (2000). Measurement of cognitive performance in computer programming concept acquisition: Interactive effects of visual metaphors and the cognitive style construct: Journal of Applied Measurement Vol 1(3) 2000, 257-291. *McKenna, P. (2001). Programmers: Concrete women and abstract men? : Journal of Computer Assisted Learning Vol 17(4) Dec 2001, 386-395. *McKenney, S. (2008). Shaping computer-based support for curriculum developers: Computers & Education Vol 50(1) Jan 2008, 248-261. *McSherry, D. (2001). Intelligent case-authoring support in CaseMaker-2: Computational Intelligence Vol 17(2) May 2001, 331-345. *Mechling, L. C., Gast, D. L., & Cronin, B. A. (2006). The effects of presenting high-preference items, paired with choice, via computer-based video programming on task completion of students with autism: Focus on Autism and Other Developmental Disabilities Vol 21(1) Spr 2006, 7-13. *Mejri, M., Ktari, B., Fujita, H., & Erhioui, M. (2003). Static analysis of Lyee requirements: Knowledge-Based Systems Vol 16(7-8) Nov 2003, 361-382. *Mena, J. B. (2006). Automatic vectorization of segmented road networks by geometrical and topological analysis of high resolution binary images: Knowledge-Based Systems Vol 19(8) Dec 2006, 704-718. *Merikangas, J. R. (2005). Review of Transmission: A Novel: American Journal of Psychiatry Vol 162(12) Dec 2005, 2411-2412. *Merrill, D. C., Reiser, B. J., Merrill, S. K., & Landes, S. (1995). Tutoring: Guided learning by doing: Cognition and Instruction Vol 13(3) 1995, 315-372. *Metiu, A. M. (2002). Faraway, so close: Code ownership over innovative work in the global software industry (India). Dissertation Abstracts International Section A: Humanities and Social Sciences. *Mezher, T. M. (1993). Toward a theory of critiquing human errors in computer programming: Dissertation Abstracts International. *Mi, P., & Scacchi, W. (1996). A meta-model for formulating knowledge-based models of software development: Decision Support Systems Vol 17(4) Aug 1996, 313-330. *Millan, W., Fuller, J., & Dawson, E. (2004). New Concepts in Evolutionary Search for Boolean Functions in Cryptology: Computational Intelligence Vol 20(3) Aug 2004, 463-474. *Miller, G. A. (1996). Meaning matters: Problems in sense resolution. Hillsdale, NJ, England: Lawrence Erlbaum Associates, Inc. *Millward, R. B. (1973). Debugging the Computer Programmer: PsycCRITIQUES Vol 18 (1), Jan, 1973. *Mishra, P. (1999). Flexible learning in the periodic system with multiple representations: The design of a hypertext for learning complex concepts in chemistry. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Moon, H., & Phillips, P. J. (2001). Computational and performance aspects of PCA-based face-recognition algorithms: Perception Vol 30(3) 2001, 303-321. *Moraes, I. (1996). Use of rule based elaboration of worked examples to promote the acquisition of programming plans. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Morse, D. T. (1998). MINSIZE: A computer program for obtaining minimum sample size as an indicator of effect size: Educational and Psychological Measurement Vol 58(1) Feb 1998, 142-153. *Mosemann, R. J. (2000). Navigation and comprehension of procedural language programs. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Moyer, L. G. (1995). Dissociation among computer programmers: A multiple case study of presentation, application, and ramification. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Mueller, J. H. (1997). Anxiety, efficacy, and computing. Wellington, New Zealand: New Zealand Psychological Society. *Munoz-Avila, H. (2001). Case-base maintenance by integrating case-index revision and case-retention policies in a derivational replay framework: Computational Intelligence Vol 17(2) May 2001, 280-294. *Murnane, J. S. (1993). The psychology of computer languages for introductory programming courses: New Ideas in Psychology Vol 11(2) Jul 1993, 213-228. *Mustajoki, J., & Hamalainen, R. P. (2005). A Preference Programming Approach to Make the Even Swaps Method Even Easier: Decision Analysis Vol 2(2) Jun 2005, 110-123. *Nakakoji, K. (2004). Special issue on human-computer interaction research in Japan: International Journal of Human-Computer Studies Vol 60(4) Apr 2004, 417-420. *Nammuni, K., Pickering, C., Modgil, S., Montgomery, A., Hammond, P., Wyatt, J. C., et al. (2004). Design-a-trial: A rule-based decision support system for clinical trial design: Knowledge-Based Systems Vol 17(2-4) May 2004, 121-129. *Nick, M., Altholff, K.-D., & Tautz, C. (2001). Systematic maintenance of corporate experience repositories: Computational Intelligence Vol 17(2) May 2001, 364-386. *Nickerson, J. V. (1995). Visual programming. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Niimi, A., & Tazaki, E. (2001). Combined method of genetic programming and association rule algorithm: Applied Artificial Intelligence Vol 15(9) Oct 2001, 825-842. *No authorship, i. (1988). Review of Linear Programming: An Introduction. Series: Quantitative Applications in the Social Sciences, No. 60: PsycCRITIQUES Vol 33 (1), Jan, 1988. *No authorship, i. (1989). Review of Computer-Assisted Psychological Evaluations: How To Create Testing Programs in BASIC: PsycCRITIQUES Vol 34 (11), Nov, 1989. *No authorship, i. (1989). Review of Empirical Studies of Programmers: Second Workshop: PsycCRITIQUES Vol 34 (11), Nov, 1989. *No authorship, i. (1991). Review of The Acquisition of Expertise in Computer Programming: PsycCRITIQUES Vol 36 (12), Dec, 1991. *Nong, Y., & Salvendy, G. (1996). Expert-novice knowledge of computer programming at different levels of abstraction: Ergonomics Vol 39(3) Mar 1996, 461-481. *Nordin, P., & Banzhaf, W. (1996). An on-line method to evolve behavior and to control a miniature robot in real time with genetic programming: Adaptive Behavior Vol 5(2) Fal 1996, 107-140. *Oberweis, A. (1996). An integrated approach for the specification of processes and related complex structured objects in business applications: Decision Support Systems Vol 17(1) Apr 1996, 31-53. *Ockerman, J. J., & Mitchell, C. M. (1999). Case-based design browser to support software reuse: Theoretical structure and empirical evaluation: International Journal of Human-Computer Studies Vol 51(5) Nov 1999, 865-893. *Oliver, R. (1993). Measuring hierarchical levels of programming knowledge: Journal of Educational Computing Research Vol 9(3) 1993, 299-312. *Oltean, M., & Grosan, C. (2007). Using traceless genetic programming for solving multi-objective optimization problems: Journal of Experimental & Theoretical Artificial Intelligence Vol 19(3) Sep 2007, 227-248. *O'Reilly, D. (1998). School programming as literacy: The case for BOXER: Journal of Computer Assisted Learning Vol 14(1) Mar 1998, 51-58. *Ormerod, T. C., & Chronicle, E. P. (1999). Global perceptual processing in problem solving: The case of the traveling salesperson: Perception & Psychophysics Vol 61(6) Aug 1999, 1227-1238. *Owens, C. (1993). Integrating feature extraction and memory search: Machine Learning Vol 10(3) Mar 1993, 311-339. *Paganelli, L., & Paterno, F. (2003). Tools for remote usability evaluation of Web applications through browser logs and task models: Behavior Research Methods, Instruments & Computers Vol 35(3) Aug 2003, 369-378. *Page, D., Srinivasan, A., Cussens, J., & Frisch, A. M. (2004). ILP: A Short Look Back and a Longer Look Forward: Journal of Machine Learning Research Vol 4(4) May 2004, 415-430. *Pane, J. F., Ratanamahatana, C. A., & Myers, B. A. (2001). Studying the language and structure in non-programmers' solutions to programming problems: International Journal of Human-Computer Studies Vol 54(2) Feb 2001, 237-264. *Patel, M. J., du Boulay, B., & Taylor, C. (1997). Comparison of contrasting Prolog trace output formats: International Journal of Human-Computer Studies Vol 47(2) Aug 1997, 289-322. *Pendharkar, P. C. (2006). Inductive Regression Tree and Genetic Programming Techniques for Learning User Web Search Preferences: Journal of Organizational Computing and Electronic Commerce Vol 16(3-4) 2006, 223-245. *Penna, G. D., Intrigila, B., & Orefice, S. (2001). Generating graphical applications from state-transition visual specifications: International Journal of Human-Computer Studies Vol 55(6) Dec 2001, 861-880. *Pennington, N., Lee, A. Y., & Rehder, B. (1995). Cognitive activities and levels of abstraction in procedural and object-oriented design: Human-Computer Interaction Vol 10(2-3) 1995, 171-226. *Perry, E. L., Simpson, P. A., NicDomhnaill, O. M., & Siegel, D. M. (2003). Is there a technology age gap? Associations among age, skills, and employment outcomes: International Journal of Selection and Assessment Vol 11(2-3) Jun-Sep 2003, 141-149. *Petre, M., & Blackwell, A. F. (1999). Mental imagery in program design and visual programming: International Journal of Human-Computer Studies Vol 51(1) Jul 1999, 7-30. *Petre, M., & Wiedenbeck, S. (2004). Empirical studies of software engineering: International Journal of Human-Computer Studies Vol 61(2) Aug 2004, 165-167. *Plichtova, J., & Berecka, O. g. (1996). Using computer programs in content analysis: Ceskoslovenska Psychologie Vol 40(5) 1996, 414-424. *Polidora, V. J., & Main, W. T. (1963). Punched card programming and recording techniques employed in the automation of the WGTA: Journal of the Experimental Analysis of Behavior 6(4) 1963, 599-603. *Pollock, M. L. (1997). Facilitating cognitive abilities and positive school attitudes among elementary school students through Lego-Logo programming. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Portinale, L., & Torasso, P. (2001). Case-base maintenance in a multimodal reasoning system: Computational Intelligence Vol 17(2) May 2001, 263-279. *Postner, L. E. (2003). What's so hard about learning to program? A cognitive and ethnographic analysis of beginning programming students. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Priebe, R. L. (1998). The effects of cooperative learning on content comprehension and logical reasoning in a second-semester university computer science course. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Pulkin, B. V. (1996). Programming without programming: The system Butterfly for professional psychologists: Behavior Research Methods, Instruments & Computers Vol 28(4) Nov 1996, 577-583. *Rajlich, V., & Xu, S. (2007). Constructivist learning during software development: International Journal of Cognitive Informatics and Natural Intelligence Vol 1(3) Jul-Sep 2007, 78-89. *Ram, A. (1993). Indexing, elaboration and refinement: Incremental learning of explanatory cases: Machine Learning Vol 10(3) Mar 1993, 201-248. *Ramadhan, H. A., Deek, F., & Shihab, K. (2001). Incorporating software visualization in the design of intelligent diagnosis systems for user programming: Artificial Intelligence Review Vol 16(1) Sep 2001, 61-84. *Ramalingam, V., & Wiedenbeck, S. (1998). Development and validation of scores on a computer programming self-efficacy scale and group analyses of novice programmer self-efficacy: Journal of Educational Computing Research Vol 19(4) 1998, 367-381. *Raykov, T. (2004). Review of SASReg. Programming for Researchers and Social Scientists: Understanding Statistics Vol 3(1) 2004, 61-62. *Reinartz, T., Iglezakis, I., & Roth-Berghofer, T. (2001). Review and restore for case-base maintenance: Computational Intelligence Vol 17(2) May 2001, 214-234. *Reiss, K., & Reiss, M. (1995). Aspects of acquiring iterative structures in computer programming. Westport, CT: Ablex Publishing. *Reynolds, C. W. (1994). Evolution of obstacle avoidance behavior: Using noise to promote robust solutions. Cambridge, MA: The MIT Press. *Rhodes, P. C., & Merad-Menani, S. (1995). Towards a fuzzy logic programming system: A clausal form fuzzy logic: Knowledge-Based Systems Vol 8(4) Aug 1995, 174-182. *Richard, P. R., & Moss, J. L. (1963). The checkout and maintenance (CAM) trainer: III. Malfunction simulator: USAF Aerospace Medical Research Laboratories Memorandum No P-62 1963, 13. *Richards, N., Moriarty, D. E., & Miikkulainen, R. (1998). Evolving neural networks to play go: Applied Intelligence Vol 8(1) Jan 1998, 85-96. *Robbins, J. E., & Redmiles, D. F. (1998). Software architecture critics in the Argo design environment: Knowledge-Based Systems Vol 11(1) Sep 1998, 47-60. *Romero, P. (2001). Focal structures and information types in Prolog: International Journal of Human-Computer Studies Vol 54(2) Feb 2001, 211-236. *Romero, P., Cox, R., Du Boulay, B., Lutz, R., & Bryant, S. (2007). A methodology for the capture and analysis of hybrid data: A case study of program debugging: Behavior Research Methods Vol 39(2) May 2007, 309-317. *Romero, P., du Boulay, B., Cox, R., Lutz, R., & Bryant, S. (2007). Debugging strategies and tactics in a multi-representation software environment: International Journal of Human-Computer Studies Vol 65(12) Dec 2007, 992-1009. *Rosenbaum, D. A. (2007). MATLAB for behavioral scientists. Mahwah, NJ: Lawrence Erlbaum Associates Publishers. *Rosson, M. B. (1990). The coming of age of programming instruction: PsycCRITIQUES Vol 35 (7), Jul, 1990. *Roth, S. F., Chuah, M. C., Kerpedjiev, S., Kolojejchick, J. A., & Lucas, P. (1997). Toward an information visualization workspace: Combining multiple means of expression: Human-Computer Interaction Vol 12(1-2) 1997, 131-185. *Roy, D. D. (2003). Individual characteristics for success in computer programming: Journal of Personality and Clinical Studies Vol 19(1) Mar 2003, 57-61. *Salgado, P. B. (1998). When a toy comes alive: A computer product as a study in material culture. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Salive, H. T., & Carter, D. E. (1966). An event selector for sequential control: Psychonomic Science Vol 5(2) 1966, 71-72. *Sammut, C., Hurst, S., Kedzier, D., & Michie, D. (2002). Learning to fly. Cambridge, MA: MIT Press. *Sanders, K., Fincher, S., Bouvier, D., Lewandowski, G., Morrison, B., Murphy, L., et al. (2005). A multi-institutional, multinational study of programming concepts using card sort data: Expert Systems: International Journal of Knowledge Engineering and Neural Networks Vol 22(3) Jul 2005, 121-128. *Scandura, J. M. (1997). Cognitive analysis, design and programming: Next generation OO paradigm: Journal of Structural Learning & Intelligent Systems Vol 13(1) 1997, 25-52. *Schapire, R. E. (1994). Learning probabilistic read-once formulas on product distributions: Machine Learning Vol 14(1) Jan 1994, 47-81. *Schiaffino, S., & Amandi, A. (2004). User - interface agent interaction: Personalization issues: International Journal of Human-Computer Studies Vol 60(1) Jan 2004, 129-148. *Schiaffino, S., & Amandi, A. (2006). Personalizing user-agent interaction: Knowledge-Based Systems Vol 19(1) Mar 2006, 43-49. *Schmidhuber, J. (2004). Optimal Ordered Problem Solver: Machine Learning Vol 54(3) Mar 2004, 211-254. *Schmidt, C. P. (2007). Cognitively flexible hypertext in an object-oriented programming course: Effects of case-based instructional support on student learning. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Schmidt, W. C. (2002). A server-side program for delivering experiments with animations: Behavior Research Methods, Instruments & Computers Vol 34(2) May 2002, 208-217. *Schomann, M. (1995). Knowledge organization of novices and advanced programmers: Effect of previous knowledge on recall and recognition of LISP-procedures. Westport, CT: Ablex Publishing. *Searle, J. R. (1997). Minds, brains, and programs. Cambridge, MA: The MIT Press. *Selker, T. (2005). Fostering motivation and creativity for computer users: International Journal of Human-Computer Studies Vol 63(4-5) Oct 2005, 410-421. *Servedio, R. (2002). PAC analogues of Perceptron and Winnow via boosting the margin: Machine Learning Vol 47(2-3) May-Jun 2002, 133-151. *Shaft, T. (1997). Responses to comprehension questions and verbal protocols as measures of computer program comprehension processes: Behaviour & Information Technology Vol 16(6) Nov-Dec 1997, 320-336. *Shaft, T. M. (1993). The role of application domain knowledge in computer program comprehension and enhancement: Dissertation Abstracts International. *Shah, A. A. (2006). Experimenting with prototype system DLVK via different approach: Knowledge-Based Systems Vol 19(8) Dec 2006, 681-686. *Shapiro, E. J. (1993). Productivity, satisfaction, leadership and interaction: A comparison of two communication networks in a software development team context, a communicative perspective on chief programmer and egoless programming teams: Dissertation Abstracts International. *Sharpe, R. S. (1993). A structural learning theory approach to problem-solving: An investigation in software maintenance: Dissertation Abstracts International. *Sherin, B. (2002). Representing geometric constructions as programs: A brief exploration: International Journal of Computers for Mathematical Learning Vol 7(1) Apr 2002, 101-115. *Sheu, C.-F., & O'Curry, S. (1996). Implementation of nonparametric multivariate statistics with S: Behavior Research Methods, Instruments & Computers Vol 28(2) May 1996, 315-318. *Shimamune, S. (1997). Effects of performance-based pay systems on quantity and quality in computer programming: Japanese Psychological Research Vol 39(4) Nov 1997, 333-338. *Shiu, S. C. K., Yeung, D. S., Sun, C. H., & Wang, X. Z. (2001). Transferring case knowledge to adaptation knowledge: An approach for case-base maintenance: Computational Intelligence Vol 17(2) May 2001, 295-314. *Shoval, P. (1995). Experimental comparison between automatic and manual menu interface design methods: Interacting with Computers Vol 7(1) Mar 1995, 73-89. *Siegel, E. V. (1994). Competitively evolving decision trees against fixed training cases for natural language processing. Cambridge, MA: The MIT Press. *Simon, H. A. (1995). Machine as mind. Menlo Park, CA ; Cambridge, MA: American Association for Artificial Intelligence; The MIT Press. *Simpson, G., Hoyles, C., & Noss, R. (2005). Designing a programming-based approach for modelling scientific phenomena: Journal of Computer Assisted Learning Vol 21(2) Apr 2005, 143-158. *Smith, K. B. (2003). Programming And Probability: A Practical Application of Principles and Standards for School Mathematics: Journal of Computers in Mathematics and Science Teaching Vol 22(1) 2003, 5-18. *Smith-Olinde, L., Nicholson, N., Chivers, C., Highley, P., & Williams, D. K. (2006). Test-Retest Reliability of In Situ Unaided Thresholds in Adults: American Journal of Audiology Vol 15(1) Jun 2006, 75-80. *Smyth, B., & McKenna, E. (2001). Competence models and the maintenance problem: Computational Intelligence Vol 17(2) May 2001, 235-249. *Snyder, J. R. (1995). The role of local program information in software maintenance productivity. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Song, H. (1998). Control structures for software agents. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Sonnentag, S., Niessen, C., & Volmer, J. (2006). Expertise in Software Design. New York, NY: Cambridge University Press. *Sparkes, R. A. (1995). An investigation of Year 7 pupils learning CONTROL LOGO: Journal of Computer Assisted Learning Vol 11(3) Sep 1995, 182-191. *Spencer, G. (1994). Automatic generation of programs for crawling and walking. Cambridge, MA: The MIT Press. *Spesock, G. J., & Lincoln, R. S. (1965). Human factors aspects of digital computer programming for simulator control: Human Factors 7(5) 1965, 473-482. *Srinivasan, A., King, R. D., & Bain, M. E. (2004). An Empirical Study of the Use of Relevance Information in Inductive Logic Programming: Journal of Machine Learning Research Vol 4(3) Apr 2004, 369-383. *Stanislaw, H., Hesketh, B., Kanavaros, S., Hesketh, T., & et al. (1994). A note on the quantification of computer programming skill: International Journal of Human-Computer Studies Vol 41(3) Sep 1994, 351-362. *Sterling, T., Lichstein, M., Scarpino, F., Steubing, D., & Steubing, W. (1964). Computer work for the blind: Journal of Rehabilitation 30(6) 1964, 20-21. *Steven, M., Lammertyn, J., Verbruggen, F., & Vandierendonck, A. (2006). Tscope: A C library for programming cognitive experiments on the MS Windows platform: Behavior Research Methods Vol 38(2) May 2006, 280-286. *Stevenson, A. K., Francis, G., & Kim, H. (1999). Java experiments for introductory cognitive psychology courses: Behavior Research Methods, Instruments & Computers Vol 31(1) Feb 1999, 99-106. *Stockburger, D. W. (1999). Automated grading of homework assignments and tests in introductory and intermediate statistics courses using active server pages: Behavior Research Methods, Instruments & Computers Vol 31(2) May 1999, 252-262. *Stoffa, V., & Palmarova, V. (2006). E-teaching and e-learning of programming: Communication & Cognition Vol 39(1-2) 2006, 85-94. *Stonebraker, J. S. (1994). Applying decision analysis to sequential decisions under uncertainty with continuous decision variables. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Sutcliffe, A. (2002). The domain theory: Patterns for knowledge and software reuse. Mahwah, NJ: Lawrence Erlbaum Associates Publishers. *Suzuki, H., & Kato, H. (2001). Identity formation/transformation as a process of collaborative learning of programming using AlgoArena. Mahwah, NJ: Lawrence Erlbaum Associates Publishers. *Swan, K. (1993). Domain knowledge, cognitive styles, and problem solving: A qualitative study of student approaches to Logo programming: Journal of Computing in Childhood Education Vol 4(2) 1993, 153-182. *Sykes, E. (2007). Developmental process model for the Java Intelligent Tutoring System: Journal of Interactive Learning Research Vol 18(3) 2007, 399-410. *Sykes, E. R. (2007). Determining the effectiveness of the 3D Alice programming environment at the Computer Science I level: Journal of Educational Computing Research Vol 36(2) 2007, 223-244. *Taber, J. I., & Marshall, M. (1964). Programming special voltages through nu-way studs: Journal of the Experimental Analysis of Behavior 7(5) 1964, 344. *Takahara, Y., Shiba, N., & Tanaka, H. (1996). An implementation of unified programming on actDSS: Decision Support Systems Vol 18(3-4) Nov 1996, 273-292. *Tam, S.-F. (1998). Efficacy outcome and sex difference in learning of hypermedia programming skills: Perceptual and Motor Skills Vol 87(3, Pt 1) Dec 1998, 855-858. *Tapp, J., Ticha, R., Kryzer, E., Gustafson, M., Gunnar, M. R., & Symons, F. J. (2006). Comparing observational software with paper and pencil for time-sampled data: A field test of Interval Manager (INTMAN): Behavior Research Methods Vol 38(1) Feb 2006, 165-169. *Tekman, H. G. (2005). Review of The cognition of basic musical structures: Applied Cognitive Psychology Vol 19(8) Dec 2005, 1109-1111. *Teller, A. (1994). The evolution of mental models. Cambridge, MA: The MIT Press. *Tholander, J. (2005). Children's Perspectives in a Game Programming Discourse: Journal of Interactive Learning Research Vol 16(1) 2005, 51-82. *Timminga, E. (1998). Solving infeasibility problems in computerized test assembly: Applied Psychological Measurement Vol 22(3) Sep 1998, 280-291. *Tong, S., & Koller, D. (2002). Support vector machine active learning with applications to text classification: Journal of Machine Learning Research Vol 2(1) Win 2002, 45-66. *Tsai, S.-e. (1993). Schema induction and individual differences in introductory programming learning: Problem representation and problem solution: Dissertation Abstracts International. *Tsau, S.-R. (1997). College students' diagnostic capabilities in computer programming. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Tukiainen, M. (2001). Comparing two spreadsheet calculation paradigms: An empirical study with novice users: Interacting with Computers Vol 13(4) Apr 2001, 427-446. *Ugur, A., & Conrad, M. (2002). Techniques for enhancing neuronal evolvability: Neurocomputing: An International Journal Vol 42 Jan 2002, 239-265. *Uhrmacher, A. M., Rohl, M., & Kullick, B. (2002). The role of reflection in simulating and testing agents: An exploration based on the simulation system JAMES: Applied Artificial Intelligence Vol 16(9-10) Oct-Dec 2002, 795-811. *Underwood, G., Underwood, J., & Turner, M. (1993). Children's thinking during collaborative computer-based problem solving: Educational Psychology Vol 13(3-4) 1993, 345-357. *Upah, S., & Thomas, R. A. (1993). An investigation of manipulative models on the learning of programming loops: Journal of Educational Computing Research Vol 9(3) 1993, 397-412. *Vadera, S. (2005). Inducing safer oblique trees without costs: Expert Systems: International Journal of Knowledge Engineering and Neural Networks Vol 22(4) Sep 2005, 206-221. *van der Aalst, W. M. P. (2006). Matching observed behavior and modeled behavior: An approach based on Petri nets and integer programming: Decision Support Systems Vol 42(3) Dec 2006, 1843-1859. *van Os, B. J., & Meulman, J. J. (2004). Improving Dynamic Programming Strategies for Partitioning: Journal of Classification Vol 21(2) 2004, 207-230. *Vanneste, P., Bertels, K., & De Decker, B. (1996). The use of reverse engineering to analyse student computer programs: Instructional Science Vol 24(3) May 1996, 197-221. *Vans, A. M. (1997). A multi-level code comprehension model for large-scale software. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Vans, A. M., von Maryhauser, A., & Somlo, G. (1999). Program understanding behvior during corrective maintenance of large-scale software: International Journal of Human-Computer Studies Vol 51(1) Jul 1999, 31-70. *Velazquez-Iturbide, J. A., Pareja-Flores, C., & Urquiza-Fuentes, J. (2008). An approach to effortless construction of program animations: Computers & Education Vol 50(1) Jan 2008, 179-192. *Veldkamp, B. P., van der Linden, W. J., & Ariel, A. (2003). Mathematical-programming approaches to test item pool design. Hauppauge, NY: Nova Science Publishers. *Veloso, M. M., & Carbonell, J. G. (1993). Derivational analogy in PRODIGY: Automating case acquisition, storage and utilization: Machine Learning Vol 10(3) Mar 1993, 249-278. *Verzoni, K. A. (1992). Development of a reasoning schema in a Prolog programming environment: Dissertation Abstracts International. *Vickers, P., & Alty, J. L. (2002). Musical program auralisation: A structured approach to motif design: Interacting with Computers Vol 14(5) Oct 2002, 457-485. *Volet, S. E., & Lund, C. P. (1994). Metacognitive instruction in introductory computer programming: A better explanatory construct for performance than traditional factors: Journal of Educational Computing Research Vol 10(4) 1994, 297-328. *Vu, K.-P. L., & Proctor, R. W. (2003). Naive and experienced judgements of stimulus-response compatability: Implications for interface design: Ergonomics Vol 46(1-3) Jan 2003, 169-187. *Waloszek, G. (1995). GLUE--A graphical LISP environment for beginners. Westport, CT: Ablex Publishing. *Walsh, J. A. (1964). An IBM program for factor analyzing three-mode matrices: Educational and Psychological Measurement 24(3) 1964, 669-673. *Wang, H.-S. (1996). Using a problem analysis model to enhance student learning in computer programming. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Wang, W., & Rada, R. (1995). Experiences with semantic net based hypermedia: International Journal of Human-Computer Studies Vol 43(3) Sep 1995, 419-439. *Wang, X. B. (2005). A Review of Automatic Essay Scoring: A Cross-Disciplinary Perspective: Journal of Educational and Behavioral Statistics Vol 30(1) Spr 2005, 105-107. *Warren, A. D. (1966). To program or not to program: A multiple choice: Journal of Programed Instruction 3(3) 1966, 41-44. *Watson, I. (2001). A case study of maintenance of a commercially fielded case-based reasoning system: Computational Intelligence Vol 17(2) May 2001, 387-398. *Weber, G., & Bogelsack, A. (1995). Representation of programming episodes in the ELM model. Westport, CT: Ablex Publishing. *Weber, G., & Mollenberg, A. (1995). ELM programming environment: A tutoring system for LISP beginners. Westport, CT: Ablex Publishing. *Wells, A. J. (2005). Algorists, Algorithms, and Complexity: An Exploration of the Shavian Critique of Discrete State Computation: Ecological Psychology Vol 17(3-4) 2005, 205-230. *Wender, K. F., Schmalhofer, F., & Bocker, H.-D. (1995). Cognition and computer programming. Westport, CT: Ablex Publishing. *Westland, J. C. (2004). The cost behavior of software defects: Decision Support Systems Vol 37(2) May 2004, 229-238. *White, D. R., Batagelj, V., & Mrvar, A. (1999). Analyzing large kinship and marriage networks with Pgraph and Pajek: Social Science Computer Review Vol 17(3) Fal 1999, 245-274. *White, M. (2006). Where do you want to sit today?: Computer programmers' static bodies and disability: Information, Communication & Society Vol 9(3) Jun 2006, 396-416. *White, R. (2005). Predicting the persistence of information technology students. Dissertation Abstracts International Section A: Humanities and Social Sciences. *Wiedenbeck, S., Fix, V., & Scholtz, J. (1993). Characteristics of the mental representations of novice and expert programmers: An empirical study: International Journal of Man-Machine Studies Vol 39(5) Nov 1993, 793-812. *Wiedenbeck, S., & Ramalingam, V. (1999). Novice comprehension of small programs written in the procedural and object-oriented styles: International Journal of Human-Computer Studies Vol 51(1) Jul 1999, 71-87. *Wiedenbeck, S., Ramalingam, V., Sarasamma, S., & Corritore, C. L. (1999). A comparison of the comprehension of object-oriented and procedural programs by novice programmers: Interacting with Computers Vol 11(3) Mar 1999, 255-282. *Wiesen, J. P. (2001). Validation of the Language-Free Computer Programmer/Analyst Aptitude Test: Applied H R M Research Vol 6(1-2) 2001, 77-78. *Wilensky, U. (1995). Paradox, programming, and learning probability: A case study in a connected mathematics framework: The Journal of Mathematical Behavior Vol 14(2) Jun 1995, 253-280. *Wilensky, U. (1996). Making sense of probability through paradox and programming: A case study in a connected mathematics framework. Hillsdale, NJ, England: Lawrence Erlbaum Associates, Inc. *Williams, M. G., & Buehler, J. N. (1999). Comparison of visual and textual languages via task modeling: International Journal of Human-Computer Studies Vol 51(1) Jul 1999, 89-115. *Williamson, D. M., Bauer, M., Steinberg, L. S., Mislevy, R. J., Behrens, J. T., & DeMark, S. F. (2004). Design Rationale for a Complex Performance Assessment: International Journal of Testing Vol 4(4) 2004, 303-332. *Willis, J. H. (1995). Stress, cognitive style, and job satisfaction of computer programmers. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Wilson, B. C. (2006). Gender differences in types of assignments preferred: Implications for computer science instruction: Journal of Educational Computing Research Vol 34(3) 2006, 245-255. *Wilson, D. C., & Leake, D. B. (2001). Maintaining case-based reasoners: Dimensions and directions: Computational Intelligence Vol 17(2) May 2001, 196-213. *Winchester, S. J. (1994). Modelling learning to become an expert logic circuit debugger. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Winograd, T. (2001). From programming environments to environments for designing. Mahwah, NJ: Lawrence Erlbaum Associates Publishers. *Witschital, P. (1995). TRAPS--An intelligent tutoring environment for novice programmers. Westport, CT: Ablex Publishing. *Wnek, J., & Michalski, R. S. (1994). Hypothesis-driven constructive induction in AQ17-HCI: A method and experiments: Machine Learning Vol 14(1) Jan 1994, 139-168. *Wong, J. T. (1993). Effect of computer-assisted instruction vs. programming on self-concept and math test scores of elementary students: Dissertation Abstracts International. *Wong, S.-Y., Cheung, H., & Chen, H.-C. (1998). The advanced programmer's reliance on program semantics: Evidence from some cognitive tasks: International Journal of Psychology Vol 33(4) 1998, 259-268. *Wood, L. J. (2000). Practice, ability and expertise in computer programming. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Wrobel, S. (1994). Concept formation during interactive theory revision: Machine Learning Vol 14(1) Jan 1994, 169-191. *Wu, C.-C. (1993). Conceptual models and individual cognitive learning styles in teaching recursion to novices: Dissertation Abstracts International. *Wu, Q., & Anderson, J. R. (1993). Strategy choice and change in programming: International Journal of Man-Machine Studies Vol 39(4) Oct 1993, 579-598. *Wu, Y., & Wong, K. Y. (2007). Impact of a spreadsheet exploration on secondary school students' understanding of statistical graphs: Journal of Computers in Mathematics and Science Teaching Vol 26(4) 2007, 355-385. *Xiao, X.-H., & Leedham, G. (1999). Signature verification by neural networks with selective attention: Applied Intelligence Vol 11(2) Sep 1999, 213-223. *Xinogalos, S., Satratzemi, M., & Dagdilelis, V. (2006). An introduction to object-oriented programming with a didactic microworld: objectKarel: Computers & Education Vol 47(2) Sep 2006, 148-171. *Yang, Q., & Zhu, J. (2001). A case-addition policy for case-base maintenance: Computational Intelligence Vol 17(2) May 2001, 250-262. *Yarnold, P. R., & Soltysik, R. C. (2005). Using the ODA software. Washington, DC: American Psychological Association. *Ye, N., Li, X., & Farley, T. (2003). A data missing technique for discovering distinct patterns of hand signs: Implications in user training and computer interface design: Ergonomics Vol 46(1-3) Jan 2003, 188-196. *Ye, N., & Salvendy, G. (1994). Quantitative and qualitative differences between experts and novices in chunking computer software knowledge: International Journal of Human-Computer Interaction Vol 6(1) Jan-Mar 1994, 105-118. *Yechiam, E. (2006). Why are macros not used? A brief review and an approach for improving training: Computers & Education Vol 46(2) Feb 2006, 206-220. *Yeom, K., & Lee, J. K. (1996). Logical representation of integer programming models: Decision Support Systems Vol 18(3-4) Nov 1996, 227-251. *Young, K.-Y., & Chen, J.-J. (1999). Implementation of a variable D-H parameter model for robot calibration using an FCMAC learning algorithm: Journal of Intelligent & Robotic Systems Vol 24(4) Apr 1999, 313-346. *Yuasa, M. (1994). The effects of active learning exercises on the acquisition of SQL query writing procedures. Dissertation Abstracts International: Section B: The Sciences and Engineering. *Zachary, G. P. (1998). Armed truce: Software in an age of teams: Information Technology & People Vol 11(1) 1998, 62-65. *Zelezny, F., Srinivasan, A., & Page, C. D., Jr. (2006). Randomised restarted search in ILP: Machine Learning Vol 64(1-3) Sep 2006, 183-208. *Zhang, L., Coenen, F., & Leng, P. (2002). Formalising optimal feature weight setting in case based diagnosis as linear programming problems: Knowledge-Based Systems Vol 15(7) Sep 2002, 391-398. *Zhuang, H., & Morgera, S. D. (2007). Development of an undergraduate course--Internet-based Instrumentation and Control: Computers & Education Vol 49(2) Sep 2007, 330-344. *Zickar, M. J., Overton, R. C., Taylor, L. R., & Harms, H. J. (1999). The development of a computerized selection system for computer programmers in a financial services company. Mahwah, NJ: Lawrence Erlbaum Associates Publishers. External links *1999 article on software programmer demographics *Visual Charts showing major components involved in computer programming Category:Computer programming